Reactã®<code>experimental_cache</code>ã®å æ¬çãªã¬ã€ããããã©ãŒãã³ã¹æé©åã®ããã®é¢æ°çµæãã£ãã·ã³ã°ãæ¢æ±ãã广çãªå®è£ ãšæŽ»çšæ³ãåŠã³ãŸãã
React experimental_cache ã®å®è£ : 颿°çµæãã£ãã·ã³ã°ããã¹ã¿ãŒãã
Reactã¯åžžã«é²åããŠãããéçºè
ãããå¹ççã§ããã©ãŒãã³ã¹ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã®ã«åœ¹ç«ã€æ°æ©èœãšæ¹åãããããããŠããŸãããã®äžã€ã§ãããçŸåšå®éšçãªæ©èœãšããŠæäŸãããŠããã®ãexperimental_cache APIã§ãããã®åŒ·åãªããŒã«ã¯ã颿°ã®çµæããã£ãã·ã¥ããã¡ã«ããºã ãæäŸããç¹ã«React Server Components (RSC) ãããŒã¿ãã§ããã®ã·ããªãªã«ãããŠããã©ãŒãã³ã¹ã倧å¹
ã«åäžãããŸãããã®èšäºã§ã¯ãexperimental_cacheã广çã«çè§£ãå®è£
ããããã®å
æ¬çãªã¬ã€ããæäŸããŸãã
颿°çµæãã£ãã·ã³ã°ã®çè§£
颿°çµæãã£ãã·ã³ã°ã¯ãã¡ã¢åãšãåŒã°ãã颿°ã®åŒã³åºãçµæããã®å ¥ååŒæ°ã«åºã¥ããŠä¿åãããææ³ã§ããåãåŒæ°ã§åã颿°ãå床åŒã³åºãããå Žåã颿°ãåå®è¡ãã代ããã«ãã£ãã·ã¥ãããçµæãè¿ãããŸããããã«ãããç¹ã«èšç®ã³ã¹ãã®é«ãæäœãå€éšããŒã¿ãœãŒã¹ã«äŸåãã颿°ã«ãããŠãå®è¡æéãåçã«ççž®ã§ããŸãã
Reactã®ã³ã³ããã¹ãã«ãããŠã颿°çµæãã£ãã·ã³ã°ã¯ç¹ã«ä»¥äžã®ç¹ã§æçã§ãã
- ããŒã¿ãã§ãã: APIåŒã³åºãã®çµæããã£ãã·ã¥ããããšã§ãåé·ãªãããã¯ãŒã¯ãªã¯ãšã¹ããé²ããã¬ã€ãã³ã·ãåæžãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã
- é«ã³ã¹ããªèšç®: è€éãªèšç®çµæããã£ãã·ã¥ããããšã§ãäžèŠãªåŠçãåé¿ãããªãœãŒã¹ãè§£æŸããå¿çæ§ãåäžãããããšãã§ããŸãã
- ã¬ã³ããªã³ã°æé©å: ã³ã³ããŒãã³ãå ã§äœ¿çšããã颿°ã®çµæããã£ãã·ã¥ããããšã§ãäžèŠãªåã¬ã³ããªã³ã°ãé²ããããã¹ã ãŒãºãªã¢ãã¡ãŒã·ã§ã³ãšã€ã³ã¿ã©ã¯ã·ã§ã³ãå®çŸã§ããŸãã
Reactã®experimental_cacheã®ç޹ä»
Reactã®experimental_cache APIã¯ã颿°çµæãã£ãã·ã³ã°ãå®è£
ããããã®çµã¿èŸŒã¿ã®æ¹æ³ãæäŸããŸããããã¯ãReact Server Componentsããã³useããã¯ãšã·ãŒã ã¬ã¹ã«é£æºããããã«èšèšãããŠãããå¹ççãªããŒã¿ãã§ãããšãµãŒããŒãµã€ãã¬ã³ããªã³ã°ãå¯èœã«ããŸãã
éèŠãªæ³šæ: ãã®åã®éããexperimental_cacheã¯ãŸã å®éšçãªæ©èœã§ããã€ãŸãããã®APIã¯å°æ¥ã®ReactããŒãžã§ã³ã§å€æŽãããå¯èœæ§ããããŸããææ°ã®Reactããã¥ã¡ã³ããåžžã«ç¢ºèªããç Žå£ç倿Žã®å¯èœæ§ã«åããããšãéèŠã§ãã
experimental_cacheã®åºæ¬çãªäœ¿çšæ³
experimental_cache颿°ã¯é¢æ°ãå
¥åãšããŠåãåããå
ã®é¢æ°ã®çµæããã£ãã·ã¥ããæ°ãã颿°ãè¿ããŸããç°¡åãªäŸã§ããã瀺ããŸãããã
import { experimental_cache } from 'react';
async function fetchUserData(userId) {
// Simulate fetching data from an API
await new Promise(resolve => setTimeout(resolve, 500));
return { id: userId, name: `User ${userId}` };
}
const cachedFetchUserData = experimental_cache(fetchUserData);
async function MyComponent({ userId }) {
const userData = await cachedFetchUserData(userId);
return (
<div>
<p>User ID: {userData.id}</p>
<p>User Name: {userData.name}</p>
</div>
);
}
ãã®äŸã§ã¯:
- 'react'ãã
experimental_cacheãã€ã³ããŒãããŸãã - APIãããŠãŒã¶ãŒããŒã¿ããã§ããããã®ãã·ãã¥ã¬ãŒãããéåæé¢æ°
fetchUserDataãå®çŸ©ããŸãããã®é¢æ°ã«ã¯ããããã¯ãŒã¯é å»¶ã衚çŸããããã®ã·ãã¥ã¬ãŒããããé å»¶ãå«ãŸããŠããŸãã fetchUserDataãexperimental_cacheã§ã©ããããŠããã£ãã·ã¥ãããããŒãžã§ã³cachedFetchUserDataãäœæããŸããMyComponentå ã§ãcachedFetchUserDataãåŒã³åºããŠãŠãŒã¶ãŒããŒã¿ãååŸããŸããç¹å®ã®userIdã§ãã®é¢æ°ãæåã«åŒã³åºããããšããå ã®fetchUserData颿°ãå®è¡ãããçµæããã£ãã·ã¥ã«ä¿åãããŸããåãuserIdã§ã®åŸç¶ã®åŒã³åºãã¯ããããã¯ãŒã¯ãªã¯ãšã¹ããåé¿ããŠããã£ãã·ã¥ãããçµæãå³åº§ã«è¿ããŸãã
React Server Componentsãš`use`ããã¯ãšã®çµ±å
experimental_cacheã¯ãReact Server Components (RSC) ãšuseããã¯ãšçµã¿åãããŠäœ¿çšãããšç¹ã«åŒ·åã§ããRSCã䜿çšãããšããµãŒããŒäžã§ã³ãŒããå®è¡ã§ããããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ãåäžããŸããuseããã¯ã䜿çšãããšãããŒã¿ã®ãã§ããäžã«ã³ã³ããŒãã³ãããµã¹ãã³ãã§ããŸãã
import { experimental_cache } from 'react';
import { use } from 'react';
async function fetchProductData(productId) {
// Simulate fetching product data from a database
await new Promise(resolve => setTimeout(resolve, 300));
return { id: productId, name: `Product ${productId}`, price: Math.random() * 100 };
}
const cachedFetchProductData = experimental_cache(fetchProductData);
function ProductDetails({ productId }) {
const product = use(cachedFetchProductData(productId));
return (
<div>
<h2>{product.name}</h2>
<p>Price: ${product.price.toFixed(2)}</p>
</div>
);
}
export default ProductDetails;
ãã®äŸã§ã¯:
- 補åããŒã¿ããã§ããããã®ãã·ãã¥ã¬ãŒãããéåæé¢æ°
fetchProductDataãå®çŸ©ããŸãã fetchProductDataãexperimental_cacheã§ã©ããããŠããã£ãã·ã¥ãããããŒãžã§ã³ãäœæããŸããProductDetailsã³ã³ããŒãã³ãïŒããã¯React Server Componentã§ããå¿ èŠããããŸãïŒå ã§ãuseããã¯ã䜿çšããŠãã£ãã·ã¥ããã颿°ãã補åããŒã¿ãååŸããŸããuseããã¯ã¯ãããŒã¿ããã§ãããããŠããéïŒãŸãã¯ãã£ãã·ã¥ããååŸãããŠããéïŒã³ã³ããŒãã³ãããµã¹ãã³ãããŸããReactã¯ãããŒã¿ãå©çšå¯èœã«ãªããŸã§ããŒãã£ã³ã°ç¶æ ã®è¡šç€ºãèªåçã«åŠçããŸãã
RSCããã³useãšçµã¿åãããŠexperimental_cacheã䜿çšããããšã§ããµãŒããŒäžã§ããŒã¿ããã£ãã·ã¥ããäžèŠãªãããã¯ãŒã¯ãªã¯ãšã¹ããåé¿ããããšã§ã倧å¹
ãªããã©ãŒãã³ã¹åäžãéæã§ããŸãã
ãã£ãã·ã¥ã®ç¡å¹å
å€ãã®å ŽåãåºãšãªãããŒã¿ã倿Žããããšãã«ãã£ãã·ã¥ãç¡å¹ã«ããå¿ èŠããããŸããããšãã°ããŠãŒã¶ãŒããããã£ãŒã«æ å ±ãæŽæ°ããå ŽåãæŽæ°ãããæ å ±ã衚瀺ãããããã«ããã£ãã·ã¥ããããŠãŒã¶ãŒããŒã¿ãç¡å¹ã«ããå¿ èŠããããŸãã
experimental_cacheèªäœã¯ããã£ãã·ã¥ç¡å¹åã®ããã®çµã¿èŸŒã¿ã¡ã«ããºã ãæäŸããŸãããã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ããŒãºã«åºã¥ããŠãç¬èªã®æŠç¥ãå®è£
ããå¿
èŠããããŸãã
ããã€ãã®äžè¬çãªã¢ãããŒãã以äžã«ç€ºããŸãã
- æåç¡å¹å: ãã£ãã·ã¥ããã颿°ããªã»ããããå¥ã®é¢æ°ãäœæããããšã§ãæåã§ãã£ãã·ã¥ãã¯ãªã¢ã§ããŸããããã«ã¯ãã°ããŒãã«å€æ°ã䜿çšããããããé«åºŠãªç¶æ 管çãœãªã¥ãŒã·ã§ã³ã䜿çšãããããæ¹æ³ãå«ãŸããå ŽåããããŸãã
- æéããŒã¹ã®æå¹æé: ãã£ãã·ã¥ãããããŒã¿ã«æå¹æé (TTL) ãèšå®ã§ããŸããTTLãæéåãã«ãªããšããã£ãã·ã¥ã¯ç¡å¹ã«ãªããæ¬¡ã®é¢æ°åŒã³åºãã§å ã®é¢æ°ãåå®è¡ãããŸãã
- ã€ãã³ãããŒã¹ã®ç¡å¹å: ããŒã¿ããŒã¹ã®æŽæ°ããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãªã©ãç¹å®ã®ã€ãã³ããçºçãããšãã«ãã£ãã·ã¥ãç¡å¹ã«ã§ããŸãããã®ã¢ãããŒãã§ã¯ããããã®ã€ãã³ããæ€åºããŠå¿çããã¡ã«ããºã ãå¿ èŠã§ãã
æåç¡å¹åã®äŸã次ã«ç€ºããŸãã
import { experimental_cache } from 'react';
let cacheKey = 0; // Global cache key
async function fetchUserProfile(userId, key) {
console.log("Fetching user profile (Key: " + key + ")"); // Debug log
await new Promise(resolve => setTimeout(resolve, 200));
return { id: userId, name: `Profile ${userId}`, cacheKey: key };
}
let cachedFetchUserProfile = experimental_cache(fetchUserProfile);
function invalidateCache() {
cacheKey++; // Increment the global cache key
//Recreate cached function, which effectively resets the cache.
cachedFetchUserProfile = experimental_cache(fetchUserProfile);
}
async function UserProfile({ userId }) {
const profile = await cachedFetchUserProfile(userId, cacheKey);
return (
<div>
<h2>User Profile</h2>
<p>ID: {profile.id}</p>
<p>Name: {profile.name}</p>
<p>Cache Key: {profile.cacheKey}</p>
<button onClick={invalidateCache}>Update Profile</button>
</div>
);
}
ãã®äŸã§ã¯ããUpdate Profileããã¿ã³ãã¯ãªãã¯ãããšinvalidateCacheãåŒã³åºãããã°ããŒãã«ãªcacheKeyãã€ã³ã¯ãªã¡ã³ããããã£ãã·ã¥ããã颿°ãåäœæããŸããããã«ãããcachedFetchUserProfileãžã®æ¬¡ã®åŒã³åºãã¯ãå
ã®fetchUserProfile颿°ãåå®è¡ããããšã«ãªããŸãã
éèŠ: ã¢ããªã±ãŒã·ã§ã³ã®ããŒãºã«æãé©ããç¡å¹åæŠç¥ãéžæããããã©ãŒãã³ã¹ãšããŒã¿ã®äžè²«æ§ãžã®æœåšçãªåœ±é¿ãæ éã«èæ ®ããŠãã ããã
èæ ®äºé ãšãã¹ããã©ã¯ãã£ã¹
experimental_cacheã䜿çšããéã¯ã以äžã®èæ
®äºé
ãšãã¹ããã©ã¯ãã£ã¹ã念é ã«çœ®ãããšãéèŠã§ãã
- ãã£ãã·ã¥ããŒã®éžæ: ãã£ãã·ã¥ããŒã決å®ããåŒæ°ãæ éã«éžæããŠãã ããããã£ãã·ã¥ããŒã¯ãã£ãã·ã¥ãããããŒã¿ãäžæã«èå¥ããå¿ èŠããããŸããåäžã®åŒæ°ã§ã¯äžååãªå Žåãè€æ°ã®åŒæ°ã®çµã¿åããã䜿çšããããšãæ€èšããŠãã ããã
- ãã£ãã·ã¥ãµã€ãº:
experimental_cacheAPIã¯ããã£ãã·ã¥ãµã€ãºãå¶éããããã®çµã¿èŸŒã¿ã¡ã«ããºã ãæäŸããŠããŸããã倧éã®ããŒã¿ããã£ãã·ã¥ããå Žåãã¡ã¢ãªåé¡ãåé¿ããããã«ç¬èªã®ãã£ãã·ã¥ãšãã¯ã·ã§ã³æŠç¥ãå®è£ ããå¿ èŠããããããããŸããã - ããŒã¿ã®ã·ãªã¢ã©ã€ãº: ãã£ãã·ã¥ãããããŒã¿ãã·ãªã¢ã©ã€ãºå¯èœã§ããããšã確èªããŠãã ããã
experimental_cacheAPIã¯ãã¹ãã¬ãŒãžã®ããã«ããŒã¿ãã·ãªã¢ã©ã€ãºããå¿ èŠãããå ŽåããããŸãã - ãšã©ãŒãã³ããªã³ã°: ããŒã¿ãã§ããã倱æãããããã£ãã·ã¥ãå©çšã§ããªãç¶æ³ãé©åã«åŠçããããã«ãé©åãªãšã©ãŒãã³ããªã³ã°ãå®è£ ããŠãã ããã
- ãã¹ã: ãã£ãã·ã¥å®è£ ãæ£ããæ©èœããŠãããããã£ãã·ã¥ãé©åã«ç¡å¹åãããŠãããã培åºçã«ãã¹ãããŠãã ããã
- ããã©ãŒãã³ã¹ç£èŠ: ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãç£èŠãããã£ãã·ã³ã°ã®åœ±é¿ãè©äŸ¡ããæœåšçãªããã«ããã¯ãç¹å®ããŠãã ããã
- ã°ããŒãã«ç¶æ 管ç: ãµãŒããŒã³ã³ããŒãã³ãã§ãŠãŒã¶ãŒåºæã®ããŒã¿ïŒäŸ: ãŠãŒã¶ãŒèšå®ãã«ãŒãã®å 容ïŒãæ±ãå Žåããã£ãã·ã³ã°ãç°ãªããŠãŒã¶ãŒããäºãã®ããŒã¿ãèŠãããšã«ã©ã®ããã«åœ±é¿ããããèæ ®ããŠãã ãããããŒã¿æŒæŽ©ãé²ãããã«ããŠãŒã¶ãŒIDããã£ãã·ã¥ããŒã«çµã¿èŸŒãã ãããµãŒããŒãµã€ãã¬ã³ããªã³ã°ã«ç¹åããã°ããŒãã«ç¶æ 管çãœãªã¥ãŒã·ã§ã³ã䜿çšããããããªã©ãé©åãªã»ãŒãã¬ãŒããå®è£ ããŠãã ããã
- ããŒã¿å€ç°: å€ç°å¯èœãªããŒã¿ããã£ãã·ã¥ããéã¯ã现å¿ã®æ³šæãæã£ãŠãã ãããé³è åããæ å ±ã誀ã£ãæ å ±ãæäŸããªãããã«ãåºãšãªãããŒã¿ã倿Žããããã³ã«ãã£ãã·ã¥ãç¡å¹åããããšã確å®ã«ããŠãã ãããããã¯ãç°ãªããŠãŒã¶ãŒãããã»ã¹ã«ãã£ãŠå€æŽãããå¯èœæ§ã®ããããŒã¿ã«ãšã£ãŠç¹ã«éèŠã§ãã
- ãµãŒããŒã¢ã¯ã·ã§ã³ãšãã£ãã·ã³ã°: ã³ã³ããŒãã³ãããçŽæ¥ãµãŒããŒãµã€ãã³ãŒããå®è¡ã§ãããµãŒããŒã¢ã¯ã·ã§ã³ãããã£ãã·ã³ã°ã®æ©æµãåããããšãã§ããŸãããµãŒããŒã¢ã¯ã·ã§ã³ãèšç®ã³ã¹ãã®é«ãæäœãå®è¡ããããããŒã¿ããã§ãããããããå Žåãçµæããã£ãã·ã¥ããããšã§ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãããã ããç¹ã«ãµãŒããŒã¢ã¯ã·ã§ã³ãããŒã¿ã倿Žããå Žåã¯ãç¡å¹åæŠç¥ã«æ³šæããŠãã ããã
experimental_cacheã®ä»£æ¿æ¡
experimental_cacheã¯é¢æ°çµæãã£ãã·ã³ã°ãå®è£
ãã䟿å©ãªæ¹æ³ãæäŸããŸãããæ€èšã§ãã代æ¿ã¢ãããŒããããã€ããããŸãã
- ã¡ã¢åã©ã€ãã©ãª:
memoize-oneãlodash.memoizeã®ãããªã©ã€ãã©ãªã¯ãã«ã¹ã¿ã ãã£ãã·ã¥ããŒããã£ãã·ã¥åé€ããªã·ãŒãéåæé¢æ°ãžã®ãµããŒããªã©ãããé«åºŠãªã¡ã¢åæ©èœãæäŸããŸãã - ã«ã¹ã¿ã ãã£ãã·ã¥ãœãªã¥ãŒã·ã§ã³:
Mapã®ãããªããŒã¿æ§é ããnode-cacheïŒãµãŒããŒãµã€ããã£ãã·ã³ã°çšïŒã®ãããªå°çšã®ãã£ãã·ã³ã°ã©ã€ãã©ãªã䜿çšããŠãç¬èªã®ãã£ãã·ã³ã°ãœãªã¥ãŒã·ã§ã³ãå®è£ ããããšãã§ããŸãããã®ã¢ãããŒãã§ã¯ããã£ãã·ã³ã°ããã»ã¹ããã现ããå¶åŸ¡ã§ããŸãããããå€ãã®å®è£ äœæ¥ãå¿ èŠã§ãã - HTTPãã£ãã·ã³ã°: APIãããã§ãããããããŒã¿ã«ã€ããŠã¯ã
Cache-ControlããããŒãªã©ã®HTTPãã£ãã·ã³ã°ã¡ã«ããºã ãæŽ»çšããŠããã©ãŠã¶ãCDNã«ã¬ã¹ãã³ã¹ããã£ãã·ã¥ããããæç€ºããŸããããã«ãããç¹ã«éçãŸãã¯ã»ãšãã©æŽæ°ãããªãããŒã¿ã®å Žåããããã¯ãŒã¯ãã©ãã£ãã¯ãå€§å¹ ã«åæžããããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
å®éã®äŸãšãŠãŒã¹ã±ãŒã¹
experimental_cacheïŒãŸãã¯åæ§ã®ãã£ãã·ã³ã°æè¡ïŒãéåžžã«æçãªå®äžçã®äŸãšãŠãŒã¹ã±ãŒã¹ãããã€ã瀺ããŸãã
- Eã³ããŒã¹ã®è£œåã«ã¿ãã°: 補åã®è©³çްïŒååã説æãäŸ¡æ Œãç»åïŒããã£ãã·ã¥ããããšã§ãç¹ã«å€§èŠæš¡ãªã«ã¿ãã°ãæ±ãå Žåã«ãEã³ããŒã¹ãŠã§ããµã€ãã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã
- ããã°æçš¿ãšèšäº: ããã°æçš¿ãšèšäºããã£ãã·ã¥ããããšã§ãããŒã¿ããŒã¹ãžã®è² è·ã軜æžããèªè ã®é²èЧãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã
- ãœãŒã·ã£ã«ã¡ãã£ã¢ãã£ãŒã: ãŠãŒã¶ãŒãã£ãŒããšã¿ã€ã ã©ã€ã³ããã£ãã·ã¥ããããšã§ãåé·ãªAPIåŒã³åºããé²ãããœãŒã·ã£ã«ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãåäžãããããšãã§ããŸãã
- éèããŒã¿: ãªã¢ã«ã¿ã€ã ã®æ ªäŸ¡ãçºæ¿ã¬ãŒãããã£ãã·ã¥ããããšã§ãéèããŒã¿ãããã€ããŒãžã®è² è·ã軜æžããéèã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- ãããã³ã°ã¢ããªã±ãŒã·ã§ã³: ãããã¿ã€ã«ããžãªã³ãŒãã£ã³ã°ã®çµæããã£ãã·ã¥ããããšã§ããããã³ã°ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžããããããã³ã°ãµãŒãã¹ã®äœ¿çšã³ã¹ããåæžã§ããŸãã
- åœéå (i18n): ç°ãªããã±ãŒã«åãã®ç¿»èš³æååããã£ãã·ã¥ããããšã§ãåé·ãªã«ãã¯ã¢ãããé²ããå€èšèªã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- ããŒãœãã©ã€ãºãããã¬ã³ã¡ã³ããŒã·ã§ã³: ããŒãœãã©ã€ãºããã補åãã³ã³ãã³ãã®ã¬ã³ã¡ã³ããŒã·ã§ã³ããã£ãã·ã¥ããããšã§ãã¬ã³ã¡ã³ããŒã·ã§ã³çæã®èšç®ã³ã¹ããåæžãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸããäŸãã°ãã¹ããªãŒãã³ã°ãµãŒãã¹ã¯ããŠãŒã¶ãŒã®èŠèŽå±¥æŽã«åºã¥ããŠæ ç»ã®ã¬ã³ã¡ã³ããŒã·ã§ã³ããã£ãã·ã¥ã§ããŸãã
çµè«
Reactã®experimental_cache APIã¯ã颿°çµæãã£ãã·ã³ã°ãå®è£
ããReactã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãæé©åãã匷åãªæ¹æ³ãæäŸããŸãããã®åºæ¬çãªäœ¿ãæ¹ãçè§£ããReact Server Componentsããã³useããã¯ãšçµ±åãããã£ãã·ã¥ç¡å¹åæŠç¥ãæ
éã«æ€èšããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®å¿çæ§ãšå¹çã倧å¹
ã«åäžãããããšãã§ããŸããããã¯å®éšçãªAPIã§ãããããææ°ã®Reactããã¥ã¡ã³ããåžžã«ç¢ºèªããæœåšçãªå€æŽã«åããããšãå¿ããªãã§ãã ããããã®èšäºã§æŠèª¬ããèæ
®äºé
ãšãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãexperimental_cacheã广çã«æŽ»çšããåªãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸãã髿§èœãªReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
experimental_cacheãæ¢çŽ¢ããéã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å
·äœçãªããŒãºãèæ
®ããèŠä»¶ã«æãé©ãããã£ãã·ã³ã°æŠç¥ãéžæããŠãã ãããå®éšãæããã代æ¿ã®ãã£ãã·ã³ã°ãœãªã¥ãŒã·ã§ã³ãæ¢çŽ¢ããŠããããžã§ã¯ãã«æé©ãªã¢ãããŒããèŠã€ããŠãã ãããæ
éãªèšç»ãšå®è£
ã«ããã颿°çµæãã£ãã·ã³ã°ã®å¯èœæ§ãæå€§éã«åŒãåºããããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã®äž¡æ¹ãåããReactã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã